home *** CD-ROM | disk | FTP | other *** search
/ Czech Logic, Card & Gambling Games / Logické hry.iso / hry / Fish Fillets / script / pearls / code.lua next >
Encoding:
Text File  |  2005-07-16  |  10.8 KB  |  293 lines

  1.  
  2. -- -----------------------------------------------------------------
  3. -- Init
  4. -- -----------------------------------------------------------------
  5. local function prog_init()
  6.     initModels()
  7.     sound_playMusic("music/rybky04.ogg")
  8.     local pokus = getRestartCount()
  9.  
  10.  
  11.     -- -------------------------------------------------------------
  12.     local function prog_init_room()
  13.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  14.  
  15.         room.uvod = 0
  16.         room.fofr = randint(300, 1500)
  17.         room.jestejednu = randint(500, 5000)
  18.         room.flakat = 0
  19.         room.otyci = randint(500, 3000)
  20.         room.kleopatra = randint(300, 1000)
  21.         room.opoteru = randint(600, 1200)
  22.  
  23.         return function()
  24.             if isReady(small) and isReady(big) and no_dialog() then
  25.                 if room.jestejednu > 0 then
  26.                     room.jestejednu = room.jestejednu - 1
  27.                 end
  28.                 if room.jestejednu < -1 and room.jestejednu > -60 then
  29.                     room.jestejednu = room.jestejednu + 1
  30.                 end
  31.                 if room.jestejednu < -60 and room.jestejednu > -120 then
  32.                     room.jestejednu = room.jestejednu + 1
  33.                 end
  34.                 if room.otyci > 0 then
  35.                     room.otyci = room.otyci - 1
  36.                 end
  37.                 if room.kleopatra > 0 then
  38.                     room.kleopatra = room.kleopatra - 1
  39.                 end
  40.                 if room.opoteru > 0 then
  41.                     room.opoteru = room.opoteru - 1
  42.                 end
  43.                 if room.uvod == 0 then
  44.                     room.uvod = 1
  45.                     addm(random(200) + 10, "jed-m-libi")
  46.                     switch(random(2)){
  47.                         [0] = function()
  48.                             addm(random(5), "jed-m-perly0")
  49.                         end,
  50.                         [1] = function()
  51.                             addm(random(5), "jed-m-perly1")
  52.                         end,
  53.                     }
  54.                     switch(random(7)){
  55.                         [0] = function()
  56.                             addv(random(5), "jed-v-poslani0")
  57.                         end,
  58.                         [1] = function()
  59.                             addv(random(5), "jed-v-poslani0")
  60.                         end,
  61.                         [2] = function()
  62.                             addv(random(5), "jed-v-poslani1")
  63.                         end,
  64.                         [3] = function()
  65.                             addv(random(5), "jed-v-poslani1")
  66.                         end,
  67.                         [4] = function()
  68.                             addv(random(5), "jed-v-poslani2")
  69.                         end,
  70.                         [5] = function()
  71.                             addv(random(5), "jed-v-poslani2")
  72.                         end,
  73.                     }
  74.                 elseif room.fofr <= small.fofr and room.flakat == 0 then
  75.                     room.flakat = 1
  76.                     addm(1, "jed-m-flakas")
  77.                     switch(random(2)){
  78.                         [0] = function()
  79.                             addv(random(5), "jed-v-uzivat0")
  80.                         end,
  81.                         [1] = function()
  82.                             addv(random(5), "jed-v-uzivat1")
  83.                         end,
  84.                     }
  85.                 elseif room.jestejednu == 0 and dist(small, zeva) < 3 and look_at(small, zeva) and random(100) < 5 then
  86.                     room.jestejednu = -1 * (random(40) + 20)
  87.                     addm(1, "jed-m-perlorodka0")
  88.                     planDialogSet(randint(1, 20), "jed-x-nedam", 101, zeva, "cinnost")
  89.                 elseif dist(small, zeva) < 3 and look_at(small, zeva) and room.jestejednu == -1 then
  90.                     room.jestejednu = -1 * (random(40) + 80)
  91.                     addm(1, "jed-m-perlorodka1")
  92.                     planDialogSet(randint(1, 20), "jed-x-nedam", 101, zeva, "cinnost")
  93.                 elseif dist(small, zeva) < 3 and look_at(small, zeva) and room.jestejednu == -60 then
  94.                     room.jestejednu = random(10000) + 10000
  95.                     addm(1, "jed-m-perlorodka2")
  96.                     planDialogSet(randint(1, 20), "jed-x-nedam", 102, zeva, "cinnost")
  97.                 elseif room.otyci == 0 and room.flakat == 1 then
  98.                     addm(random(5), "jed-m-trubka")
  99.                     room.otyci = -1
  100.                 elseif room.kleopatra == 0 then
  101.                     addv(random(10), "jed-v-ocet")
  102.                     addm(random(4), "jed-m-moc")
  103.                     addv(random(5), "jed-v-vzdelat")
  104.                     room.kleopatra = -1
  105.                 elseif room.opoteru == 0 then
  106.                     addv(random(10), "jed-v-poter")
  107.                     if random(100) < 60 then
  108.                         addm(random(5), "jed-m-kulicka")
  109.                     end
  110.                     room.opoteru = -1
  111.                 end
  112.             end
  113.         end
  114.     end
  115.  
  116.     -- -------------------------------------------------------------
  117.     local function prog_init_small()
  118.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  119.  
  120.         small.fofr = 0
  121.  
  122.         return function()
  123.             if small.dir ~= dir_no and level_isNewRound() then
  124.                 small.fofr = small.fofr + 1
  125.             end
  126.         end
  127.     end
  128.  
  129.     -- -------------------------------------------------------------
  130.     local function prog_init_zeva()
  131.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  132.  
  133.         zeva.cinnost = 0
  134.         zeva.pocet = 0
  135.  
  136.         return function()
  137.             if zeva.cinnost == 0 and random(1000) < 10 then
  138.                 zeva.faze = 1
  139.                 if random(100) < 25 and zeva.pocet > 3 then
  140.                     zeva.cinnost = 2
  141.                 else
  142.                     zeva.cinnost = 1
  143.                 end
  144.                 zeva.pocet = zeva.pocet + 1
  145.             end
  146.             switch(zeva.cinnost){
  147.                 [1] = function()
  148.                     switch(zeva.faze){
  149.                         [1] = function()
  150.                             zeva.afaze = 1
  151.                             zeva.faze = zeva.faze + 1
  152.                         end,
  153.                         [2] = function()
  154.                             zeva.afaze = 2
  155.                             zeva.delay = random(10)
  156.                             zeva.faze = zeva.faze + 1
  157.                         end,
  158.                         [3] = function()
  159.                             if zeva.delay > 0 then
  160.                                 zeva.delay = zeva.delay - 1
  161.                             else
  162.                                 zeva.afaze = 1
  163.                                 zeva.faze = zeva.faze + 1
  164.                             end
  165.                         end,
  166.                         [4] = function()
  167.                             zeva.cinnost = 0
  168.                             zeva.afaze = 0
  169.                         end,
  170.                     }
  171.                 end,
  172.                 [2] = function()
  173.                     switch(zeva.faze){
  174.                         [1] = function()
  175.                             zeva.afaze = 3
  176.                             zeva.faze = zeva.faze + 1
  177.                         end,
  178.                         [2] = function()
  179.                             zeva.afaze = 4
  180.                             zeva.delay = 20 + random(100)
  181.                             zeva.faze = zeva.faze + 1
  182.                         end,
  183.                         [3] = function()
  184.                             if zeva.delay > 0 then
  185.                                 if random(100) < 3 then
  186.                                     zeva.faze = 10
  187.                                 else
  188.                                     zeva.delay = zeva.delay - 1
  189.                                 end
  190.                             else
  191.                                 zeva.afaze = 1
  192.                                 zeva.faze = zeva.faze + 1
  193.                             end
  194.                         end,
  195.                         [4] = function()
  196.                             zeva.cinnost = 0
  197.                             zeva.afaze = 0
  198.                         end,
  199.                         [16] = function()
  200.                             zeva.afaze = 4
  201.                             zeva.faze = 3
  202.                         end,
  203.                         default = function()
  204.                             if zeva.faze == 10 or zeva.faze == 15 then
  205.                                 zeva.afaze = 5
  206.                                 zeva.faze = zeva.faze + 1
  207.                             elseif zeva.faze == 11 or zeva.faze == 14 then
  208.                                 zeva.afaze = 6
  209.                                 zeva.faze = zeva.faze + 1
  210.                             elseif zeva.faze == 12 or zeva.faze == 13 then
  211.                                 zeva.afaze = 7
  212.                                 zeva.faze = zeva.faze + 1
  213.                             end
  214.                         end
  215.                     }
  216.                 end,
  217.                 [101] = function()
  218.                     zeva.faze = 1
  219.                     zeva.cinnost = 1
  220.                 end,
  221.                 [102] = function()
  222.                     zeva.faze = 1
  223.                     zeva.cinnost = 2
  224.                 end,
  225.             }
  226.             zeva:updateAnim()
  227.         end
  228.     end
  229.  
  230.     -- -------------------------------------------------------------
  231.     local function prog_init_perla1()
  232.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  233.  
  234.         room.globpole = {}
  235.         for pom1 = 0, 11 do
  236.             room.globpole[pom1] = -random(50) - 10
  237.         end
  238.  
  239.         return function()
  240.             for pom1 = 0, 11 do
  241.                 room.globpole[pom1] = room.globpole[pom1] + 1
  242.                 if isIn(room.globpole[pom1], {0, 5}) then
  243.                     pom2 = 1
  244.                 elseif isIn(room.globpole[pom1], {1, 4}) then
  245.                     pom2 = 2
  246.                 elseif isIn(room.globpole[pom1], {2, 3}) then
  247.                     pom2 = 3
  248.                 elseif room.globpole[pom1] == 6 then
  249.                     pom2 = 0
  250.                     room.globpole[pom1] = -random(50) - 10
  251.                 else
  252.                     pom2 = 0
  253.                 end
  254.                 getModelsTable()[perla1.index + pom1].afaze = pom2
  255.                 getModelsTable()[perla1.index + pom1]:updateAnim()
  256.             end
  257.         end
  258.     end
  259.  
  260.     -- --------------------
  261.     local update_table = {}
  262.     local subinit
  263.     subinit = prog_init_room()
  264.     if subinit then
  265.         table.insert(update_table, subinit)
  266.     end
  267.     subinit = prog_init_small()
  268.     if subinit then
  269.         table.insert(update_table, subinit)
  270.     end
  271.     subinit = prog_init_zeva()
  272.     if subinit then
  273.         table.insert(update_table, subinit)
  274.     end
  275.     subinit = prog_init_perla1()
  276.     if subinit then
  277.         table.insert(update_table, subinit)
  278.     end
  279.     return update_table
  280. end
  281. local update_table = prog_init()
  282.  
  283.  
  284. -- -----------------------------------------------------------------
  285. -- Update
  286. -- -----------------------------------------------------------------
  287. function prog_update()
  288.     for key, subupdate in pairs(update_table) do
  289.         subupdate()
  290.     end
  291. end
  292.  
  293.